#ifndef STANDARD_NETWORK_MODULE_H
#define STANDARD_NETWORK_MODULE_H

#include <net_module.h>
#include <singleton.h>
#include <pipe_module.h>

class CNetworkModule : public CSingleton<CNetworkModule>
{
    friend class CSingleton<CNetworkModule>;
public:
    // default constructor
    CNetworkModule(void);
    // default destructor
    ~CNetworkModule(void);
    // initialize
    bool Init();
    // Run
    bool Run();
protected:
    utility::network::net_module * m_pNetModule;
    utility::network::pipe_module * m_pPipeModule;
    utility::network::listener * m_pListener;
    std::string m_strPort;
    std::string m_strIP;
    std::string m_strCrtChainFile;
    std::string m_strKeyFile;
    std::string m_strDhFile;
    std::string m_strPwd;
};

#endif  // endif of STANDARD_NETWORK_MODULE_H

